package com.talos.ums.dal.mysql.childuser;

import com.talos.framework.common.pojo.PageResult;
import com.talos.framework.mybatis.core.mapper.BaseMapperX;
import com.talos.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.talos.ums.controller.admin.childuser.vo.UmsChildUserPageReqVO;
import com.talos.ums.dal.dataobject.childuser.UmsChildUserDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 子账号添加记录表 Mapper
 *
 * @author ${table.author}
 */
@Mapper
public interface UmsChildUserMapper extends BaseMapperX<UmsChildUserDO> {

    default PageResult<UmsChildUserDO> selectPage(UmsChildUserPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<UmsChildUserDO>()
                .eqIfPresent(UmsChildUserDO::getUserId, reqVO.getUserId())
                .eqIfPresent(UmsChildUserDO::getCompanyId, reqVO.getCompanyId())
                .eqIfPresent(UmsChildUserDO::getCompanyCode, reqVO.getCompanyCode())
                .likeIfPresent(UmsChildUserDO::getCompanyName, reqVO.getCompanyName())
                .likeIfPresent(UmsChildUserDO::getNickname, reqVO.getNickname())
                .likeIfPresent(UmsChildUserDO::getUsername, reqVO.getUsername())
                .eqIfPresent(UmsChildUserDO::getType, reqVO.getType())
                .eqIfPresent(UmsChildUserDO::getRemark, reqVO.getRemark())
                .betweenIfPresent(UmsChildUserDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(UmsChildUserDO::getCreatorId, reqVO.getCreatorId())
                .eqIfPresent(UmsChildUserDO::getCreatorCode, reqVO.getCreatorCode())
                .likeIfPresent(UmsChildUserDO::getCreatorName, reqVO.getCreatorName())
                .betweenIfPresent(UmsChildUserDO::getModifyTime, reqVO.getModifyTime())
                .eqIfPresent(UmsChildUserDO::getModifierId, reqVO.getModifierId())
                .eqIfPresent(UmsChildUserDO::getModifierCode, reqVO.getModifierCode())
                .likeIfPresent(UmsChildUserDO::getModifierName, reqVO.getModifierName())
                .eqIfPresent(UmsChildUserDO::getTenantId, reqVO.getTenantId())
                .orderByDesc(UmsChildUserDO::getId));
    }

}
